﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel

Namespace roncliProductions.LibWowArmory.Dungeon.Strings

    ''' <summary>
    ''' A class that encapsulates a single dungeon returned from the Armory
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Dungeon

        Private bBosses As Collection(Of Boss)

        ''' <summary>
        ''' The dungeon's identification number
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property DungeonID As Integer

        ''' <summary>
        ''' The dungeon's key, used to differentiate between dungeons with the same ID
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Key As String

        ''' <summary>
        ''' The name of the dungeon
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The release of World of Warcraft the dungeon was introduced in
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Release As Enums.ReleaseType

        ''' <summary>
        ''' A list of bosses contained within this dungeon
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Bosses As Collection(Of Boss)
            Get
                Return bBosses
            End Get
        End Property

        ''' <summary>
        ''' Constructor to create a new dungeon object
        ''' </summary>
        ''' <param name="intID"></param>
        ''' <param name="strKey"></param>
        ''' <param name="strName"></param>
        ''' <param name="rRelease"></param>
        ''' <remarks></remarks>
        Public Sub New(ByVal intID As Integer, ByVal strKey As String, ByVal strName As String, ByVal rRelease As Enums.ReleaseType, ByVal bBosses As Collection(Of Boss))
            DungeonID = intID
            Key = strKey
            Name = strName
            Release = rRelease
            Me.bBosses = bBosses
        End Sub

    End Class

End Namespace
